package cn.dgut.training.vo.activity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class CouponVO implements Serializable {

    private Long id;

    @ApiModelProperty(value = "优惠券名称")
    private String name;

    @ApiModelProperty(value = "优惠券介绍，通常是显示优惠券使用限制文字")
    private String couponDesc;

    @ApiModelProperty(value = "优惠券标签，例如新人专用")
    private String tag;

    @ApiModelProperty(value = "优惠券数量，如果是0，则是无限量")
    private Integer total;

    @ApiModelProperty(value = "优惠金额，")
    private BigDecimal amount;

    @ApiModelProperty(value = "最少消费金额才能使用优惠券。")
    private BigDecimal couponMin;

    @ApiModelProperty(value = "用户领券限制数量，如果是0，则是不限制；默认是1，限领一张.")
    private Integer couponLimit;

    @ApiModelProperty(value = "优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换；")
    private Integer couponType;

    @ApiModelProperty(value = "优惠券状态，如果是0则是正常可用；如果是1则是过期; 如果是2则是下架。")
    private Integer couponStatus;

    @ApiModelProperty(value = "商品限制类型，如果0则全商品，如果是1则是类目限制，如果是2则是商品限制。")
    private Integer goodsType;

    @ApiModelProperty(value = "优惠券兑换码")
    private String code;

    @ApiModelProperty(value = "有效时间限制，如果是0，则基于领取时间的有效天数days；如果是1，则start_time和end_time是优惠券有效期；")
    private Integer timeType;

    @ApiModelProperty(value = "基于领取时间的有效天数days。")
    private Integer days;

    @ApiModelProperty(value = "使用券开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    @ApiModelProperty(value = "使用券截至时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

}
